PNNI (Private Network-to-Network Interface) is a standards-based signaling and routing protocol which was approved by the ATM (Asynchronous Transfer Mode) Forum in 1996 for use in ATM systems. The PNNI protocol provides, inter alia, a system for creation and distribution of topology information which determines how individual network nodes “see” the network and thus how nodes communicate. A key feature of the protocol is the ability to cluster groups of switches into “peer groups”. The details of each peer group are abstracted into a single logical node which is all that can be seen outside of that peer group. This system is applied recursively so that PNNI can hierarchically aggregate network topology information. The hierarchical system is illustrated schematically in FIG. 1 of the accompanying drawings which shows a simple, three-level hierarchical network. At the lowest level of the hierarchy in this example, the nodes labeled A1 to D2 represent real switches. The switches A1, A2 and A3 are clustered to form a peer group which is represented by a logical node A in the next level up of the hierarchy. The switches B1 and B2 form a peer group which is represented by logical node B in the next level. Similarly, switches C1 to C3 and switches D1 and D2 are represented by nodes C and D respectively in the next level. Further, nodes A and B are clustered and represented by logical node X in the upper level of the hierarchy. Nodes C and D are also clustered and are represented by logical node Y in the upper level.
The topology information available to the switches is such that each switch sees the details of its own peer group plus the details of any peer group that represents it at a higher level of the PNNI hierarchy. Thus, the network structure as seen by switch A1 in the above example is as illustrated in FIG. 2 of the accompanying drawings. Switch A1 sees two links to logical node B and one link from B to logical node Y. Node B represents all of the switches in that group, namely B1 and B2, and node Y represents all of the switches in groups C and D, namely C1, C2, C3, D1 and D2. As demonstrated by this Figure, the hierarchical aggregation of topology information leads to loss of information. For example, the details of switches C1 to D2 are hidden to switch A1 which sees only the logical node Y representing these switches. This loss of information can lead to problems with the routing of connections for communication between nodes as will be demonstrated below.
ATM is a source routing technology. When a connection is established between nodes, the route that the connection takes through the network is specified by the first switch. This switch specifies the route as a series of paths, one for each level of the PNNI hierarchy that is traversed between the source and destination. The series of paths defining a route is known as a DTL (Designated Transit List). For example, referring again to FIGS. 1 and 2, suppose that a call is received at switch A1 addressed to an end system attached to switch D2. Due to the hierarchy, switch A1 does not see D2 but rather the node Y which represents D2 at a higher level. Thus, A1 may compute the following DTL for establishment of the connection:                X, Y        A, B        A1, A2At the lowest level of the hierarchy the call goes from A1 to A2. At the second level of the hierarchy the call goes from A to B. At the top level of the hierarchy the call goes from X to the destination at Y. In the real network, the connection setup will start at A1 and be forwarded to A2 as specified. Switch A2 will forward the setup to switch B1 since it knows that its neighbor is in group B which is specified in the computed path. Switch B1 will forward the setup to switch C1 since it knows that its neighbor is in group Y which is specified in the computed path. C1 determines from the call address that the call should be forwarded to node D, and thus from C1 the call may be transferred to C2, and from there via D1 to the destination node D2.        
To increase the probability that a connection can be established successfully, the ATM Forum defines a crankback mechanism. If a call setup fails, the call is returned to node(s) that created the path to attempt to choose an alternative path (“alternative routing”). To achieve this, the call is returned with a crankback element giving an indication as to which element of the network failed to forward the call. To illustrate the crankback mechanism, consider the situation where, in establishing the connection in the above example, the links from C1 to C3 and from C1 to C2 do not have sufficient bandwidth to support the call. In this situation the call cannot be established successfully since C1 has no way to forward it to the destination D2. The crankback mechanism is therefore used to return the call for possible alternative routing. The call is returned by C1 to B1. Since the lowest common level of hierarchy between these two nodes is that containing nodes X and Y, the call is returned with cause code “Node Y is blocked.” C1 cannot tell B1 about the internal links and switches in its peer group since B1 cannot see them. Since node B did not specify the path X, Y it will not attempt to reroute the call. The call is next returned to switch A2, but since A2 did not specify the path, it is immediately returned to switch A1. Switch A1 is thus informed that the call setup failed because node Y is blocked. However, in the network structure as seen by A1, node Y constitutes an element which provides the only way to access the destination node D1 to which the call must be sent. Such an element, which provides sole access to a destination node, will be referred to herein as a “sole-access element”. According to the rerouting scheme which is specified in the PNNI protocol, switch A1 will not try to find an alternative route for the call since a sole-access element, here node Y, is blocked. Thus, a successful connection cannot be established and the call setup fails.
The weakness of the above system can be seen from consideration of FIG. 1 which shows that there is a route over which the call could be established successfully, namely: A1, A3, B2, C3, C2, D1 and D2. Thus, if switch A1 had originally specified the route:                X, Y        A, B        A1, A3then the call setup would have been successful. However, even with the crankback mechanism, the alternative routing scheme fails because a significant part of the network topology is hidden from the switch attempting to reroute the connection.        